package com.caesar.Date.third;

import org.junit.jupiter.api.Test;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;

/**
 * @author caesar
 * @date 2025/7/15
 * @Description:格式化DateTimeFormatter：代替原来的SimpleDateFormat
 * @apiNote
 */
public class TestDateTimeFormatter {
    @Test
    public void test1(){
        LocalDateTime ldt = LocalDateTime.now();
        System.out.println(ldt);
        //2025-07-15T09:45:28.725312100

        //希望显示为：2025年07月15日 09:06:56 星期几
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss E");
        String str = dtf.format(ldt);
        System.out.println(str);
        //2025年07月15日 09:46:20 周二
    }

    @Test
    public void test2(){
        LocalDateTime ldt = LocalDateTime.now();
        DateTimeFormatter dt = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL).withZone(ZoneId.of("Asia/Shanghai"));
        String str = dt.format(ldt);
        System.out.println(str);
        //2025年7月15日星期二 中国标准时间 上午9:48:54
    }

    @Test
    public void test3(){
        LocalDateTime ldt = LocalDateTime.now();
        DateTimeFormatter dt = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG).withZone(ZoneId.of("Asia/Shanghai"));
        String str = dt.format(ldt);
        System.out.println(str);
        //2025年7月15日 CST 上午9:49:17
    }

    @Test
    public void test4(){
        LocalDateTime ldt = LocalDateTime.now();
        DateTimeFormatter dt = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).withZone(ZoneId.of("Asia/Shanghai"));
        String str = dt.format(ldt);
        System.out.println(str);
        //2025年7月15日 上午9:49:38
    }

    @Test
    public void test5(){
        LocalDateTime ldt = LocalDateTime.now();
        DateTimeFormatter dt = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT).withZone(ZoneId.of("Asia/Shanghai"));
        String str = dt.format(ldt);
        System.out.println(str);
        //2025/7/15 上午9:49
    }
}
